package com.cictec.middleware.tde.rm.protocol.rm.message;

import java.util.Date;

import com.cictec.middleware.tde.rm.protocol.TerminalMessage;

/**
 * 0x04 上传短语
 * 
 * @author Zhibin
 *
 */
public class Rm0x04TerminalMessage extends TerminalMessage {

	private static final long serialVersionUID = 613089780131693068L;
	
	/** 产生时间 HEX 4 字节 数据包产生的时间 */
	private Date createTime;
	/** 纬度 HEX 4 字节 见数据定义 */
	private double lat;
	/** 经度 HEX 4 字节 见数据定义 */
	private double lng;
	/** 速度 HEX 1 字节 单位为公里/小时 */
	private int speed;
	/** 方位角 HEX 1 字节 除以 2 后取整 */
	private int angle;
	/** 海拔高度 HEX 2 字节 单位为米 */
	private int altitude;
	/** 短语类型 HEX 1 字节 见短语类型表 */
	private int messageType;
	/** 短语编号 HEX 1 字节 根据业务灵活设置 */
	private int messageNumber;
	/** 触发类型 HEX 1 字节 0：表示自动触发 1：表示手动触发 2：表示调试数据 */
	private int triggerType;
	/** 预留 HEX 2 字节 预留 */
	private int reserved;

	public Rm0x04TerminalMessage(Header header) {
		super(header);
	}

	/** 产生时间 HEX 4 字节 数据包产生的时间 */
	public Date getCreateTime() {
		return createTime;
	}

	/** 产生时间 HEX 4 字节 数据包产生的时间 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	/** 纬度 HEX 4 字节 见数据定义 */
	public double getLat() {
		return lat;
	}

	/** 纬度 HEX 4 字节 见数据定义 */
	public void setLat(double lat) {
		this.lat = lat;
	}

	/** 经度 HEX 4 字节 见数据定义 */
	public double getLng() {
		return lng;
	}

	/** 经度 HEX 4 字节 见数据定义 */
	public void setLng(double lng) {
		this.lng = lng;
	}

	/** 速度 HEX 1 字节 单位为公里/小时 */
	public int getSpeed() {
		return speed;
	}

	/** 速度 HEX 1 字节 单位为公里/小时 */
	public void setSpeed(int speed) {
		this.speed = speed;
	}

	/** 方位角 HEX 1 字节 除以 2 后取整 */
	public int getAngle() {
		return angle;
	}

	/** 方位角 HEX 1 字节 除以 2 后取整 */
	public void setAngle(int angle) {
		this.angle = angle;
	}

	/** 海拔高度 HEX 2 字节 单位为米 */
	public int getAltitude() {
		return altitude;
	}

	/** 海拔高度 HEX 2 字节 单位为米 */
	public void setAltitude(int altitude) {
		this.altitude = altitude;
	}

	/** 短语类型 HEX 1 字节 见短语类型表 */
	public int getMessageType() {
		return messageType;
	}

	/** 短语类型 HEX 1 字节 见短语类型表 */
	public void setMessageType(int messageType) {
		this.messageType = messageType;
	}

	/** 短语编号 HEX 1 字节 根据业务灵活设置 */
	public int getMessageNumber() {
		return messageNumber;
	}

	/** 短语编号 HEX 1 字节 根据业务灵活设置 */
	public void setMessageNumber(int messageNumber) {
		this.messageNumber = messageNumber;
	}

	/** 触发类型 HEX 1 字节 0：表示自动触发 1：表示手动触发 2：表示调试数据 */
	public int getTriggerType() {
		return triggerType;
	}

	/** 触发类型 HEX 1 字节 0：表示自动触发 1：表示手动触发 2：表示调试数据 */
	public void setTriggerType(int triggerType) {
		this.triggerType = triggerType;
	}

	/** 预留 HEX 2 字节 预留 */
	public int getReserved() {
		return reserved;
	}

	/** 预留 HEX 2 字节 预留 */
	public void setReserved(int reserved) {
		this.reserved = reserved;
	}

	@Override
	public String toString() {
		return "Rm0x04TerminalMessage [createTime=" + createTime + ", lat=" + lat + ", lng=" + lng + ", speed=" + speed
				+ ", angle=" + angle + ", altitude=" + altitude + ", messageType=" + messageType + ", messageNumber="
				+ messageNumber + ", triggerType=" + triggerType + ", reserved=" + reserved + "]";
	}

}
